// 自定义构建脚本，避免NODE_OPTIONS问题
import { spawn } from 'child_process';
import { fileURLToPath } from 'url';
import path from 'path';
import fs from 'fs';

// 获取当前文件的目录
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const rootDir = path.resolve(__dirname, '..');

console.log('开始构建项目...');
console.log('当前工作目录:', rootDir);

// 保存原始的NODE_OPTIONS
const originalNodeOptions = process.env.NODE_OPTIONS;
// 清除NODE_OPTIONS
delete process.env.NODE_OPTIONS;

try {
  // 运行vite构建命令
  const buildProcess = spawn(
    process.platform === 'win32' ? 'npx.cmd' : 'npx',
    ['vite', 'build'],
    {
      cwd: rootDir,
      stdio: 'inherit',
      env: { ...process.env }
    }
  );

  buildProcess.on('close', (code) => {
    if (code === 0) {
      console.log('构建成功!');
    } else {
      console.error(`构建失败，退出码: ${code}`);
      process.exit(code);
    }
  });

  buildProcess.on('error', (err) => {
    console.error('构建过程中出错:', err);
    process.exit(1);
  });
} catch (error) {
  console.error('启动构建过程时出错:', error);
  process.exit(1);
} finally {
  // 恢复原始的NODE_OPTIONS（如果有）
  if (originalNodeOptions) {
    process.env.NODE_OPTIONS = originalNodeOptions;
  }
} 